
/********************************/
/*                              */
/* package-ios：命令行打包工具     */
/*                               */
/* 1、打包                        */
/* 2、编译合并 framework           */
/*********************************/

/**
 * 待验证问题
 * - 需不需要单独复制一份项目出来，进行打包？ 
 * - 不单独复制的话，打包过程中，修改项目会影响打包结果嘛？
 */

const utils = require('./utils')

// 目前支持的命令
let actionMap = {
    'init':         'package-ios init         创建 exportOption.plist 文件', 
    'config':       'package-ios config       创建 config.json 文件', 
    'start':        'package-ios start        开始打包',
    'framework':    'package-ios framework    编译单个 framework，并合并真机与模拟器通用的 framework',
    'buildProject': 'package-ios buildProject 编译指定的 XYMainApp 主工程 '
}

// -h, --help 为默认的帮助命令
function showHelp() {
    let action = process.argv.slice(2, 3)
    if (action == '-h' || action == '--help' || action == '') {
        utils.printLog('---------------------------------------------------------')
        utils.printLog('| <可用命令>：                                             |')
        utils.printLog('| -h、--help               帮助命令                        |')
        Object.keys(actionMap).forEach(key => {
            utils.printLog(`| ${actionMap[key]}  |`)
        });
        utils.printLog('---------------------------------------------------------')
        process.exit()
    }
}

// 处理 actionMap 中的命令，分发到对应的文件
function checkArgv() {
    let action = process.argv.slice(2, 3)
    let params = process.argv.slice(3)
    
    var index = Object.keys(actionMap).findIndex(item => {
        if (action == item) {
            require(`./${item}`)(...params)
            return true
        }
    })
    if (index == -1) {
        utils.printErrorLog(`not exist '${action}' command`)
    }
}

showHelp()
checkArgv()

